home *** CD-ROM | disk | FTP | other *** search
/ Floppyshop 2 / Floppyshop - 2.zip / Floppyshop - 2.iso / diskmags / 0022-3.564 / dmg-3451 / data / dosdisp.dat < prev    next >
Text File  |  1987-04-21  |  4KB  |  149 lines

  1. A basic doc-display routine.
  2. By Wheee the fibble.
  3.  
  4.  
  5.      Ok, this is a little program to display any doc files you 
  6. want to read but can't be bothered exiting from STOS.  I make no 
  7. claims about reliablility or anything else, but it gets the job 
  8. done.  Ok, on with the listing...
  9.  
  10. 10 key off : hide : flash off : click off : mode 1 : curs off : auto back off 
  11.    : update off 
  12.  
  13.      Set up the screen and things (assume not in High res)
  14.  
  15. 12 palette $222,$444
  16.  
  17.      Set up the palette to the colours my STOS is in usually 
  18.      (lovely)
  19.  
  20. 15 dim TT$(1000)
  21.  
  22.      Array to hold the lines of text. If the docs you're going to 
  23.      be displaying are likely to be longer than 1000 lines then 
  24.      increase the size of this array.
  25.  
  26. 17 call start(15)+28 : wait vbl 
  27.  
  28.      Start up the music (which is from The Syntax Terror Demo and 
  29.      was written by Mad Max)
  30.  
  31. 20 clw : home : curs off : home : centre "Very basic doc display routine" 
  32.    : print : centre "By Wheee the fibble"
  33.  
  34.      Clear the screen, print the crap...
  35.  
  36. 25 show on : F$=file select$("*.*","Load a doc",4) : if F$="" then 
  37.    call start(15)+28 : default : end 
  38.  
  39.      Get the filename.  If there's no filename then turn off the 
  40.      music and quit.
  41.  
  42. 26 hide on : locate 0,10 : centre "Loading..." : print : 
  43.    centre "Use cursor up/down to move pages"
  44.  
  45.      Print up some more crap...
  46.  
  47. 30 open in #1,F$ : L=lof(#1)
  48.  
  49.      Open the file and get it's length.
  50.  
  51. 35 on error goto 45
  52.  
  53.      Set up an error check as some docs don't have EOF-flags or 
  54.      it may not be a standard ASCII file (1st Word, ST Writer or 
  55.      whatever).
  56.  
  57. 40 T=0 : while not(eof(#1)) : line input #1,TT$(T) : goto 46
  58.  
  59.      Read in a line of the doc and check for the end of the file.
  60.      Then skip line 45.
  61.  
  62. 45 resume 46
  63.  
  64.      This is for the on error statement on line 35
  65.  
  66. 46 inc T : wend 
  67.  
  68.      Read all the lines until the while is satisfied (no error 
  69.      check for too many lines).
  70.  
  71. 50 close #1
  72.  
  73.      Close the file.
  74.  
  75. 55 on error goto 10000
  76.  
  77.      Reset the on error command.
  78.  
  79. 60 NLN=T-22 : PG=0
  80.  
  81.      NLN is the number of lines in the whole doc.
  82.      PG is the current controlling line number (the one at the top 
  83.      of the page)
  84.  
  85. 65 rem
  86.  
  87.      A very useful remark
  88.  
  89. 66 hide on : curs off 
  90.  
  91.      Mouse + cursor off
  92.  
  93. 70 repeat 
  94.  
  95.      Set up loop
  96.  
  97. 75 clw : home : curs off 
  98.  
  99.      Clear screen, cursor off.
  100.  
  101. 80 for T=PG to PG+21
  102.  
  103.      Loop from the PG (the top line) for 22 lines of text
  104.  
  105. 90 if T<=NLN+21 then print TT$(T)
  106.  
  107.      If it hasn't gone past the end of the doc, then print the 
  108.      line up.
  109.  
  110. 100 next T
  111.  
  112.      And do it 22 times.
  113.  
  114. 110 repeat : G$=upper$(inkey$) : S=scancode : until S=72 or S=80 or G$="Q"
  115.  
  116.      Wait until either curs up, curs down or Q is pressed.
  117.  
  118. 130 if S=72 and PG>0 then PG=PG-21 : goto 150
  119.  
  120.      Curs up pressed, so if it isn't at the top of the doc, 
  121.      decrease PG (the top line) by 21.
  122.  
  123. 140 if S=80 and PG<NLN then PG=PG+21 : goto 150
  124.  
  125.      Same for curs down (page down).
  126.  
  127. 145 if G$<>"Q" then goto 110
  128.  
  129.      If the key pressed wasn't Q the go back and get a key (I'm 
  130.      not sure why this is here actually, but it might be needed).
  131.  
  132. 150 until G$="Q"
  133.  
  134.      Repeat until Q is pressed.
  135.  
  136. 160 goto 20
  137.  
  138.      Jump back to the file-selector.
  139.  
  140. 10000 print "Error number";errn;" on line";errl
  141. 10010 end 
  142.  
  143.      Error trap.
  144.  
  145. note from editor: This Doc Displayer isn't a patch on my amazing 
  146. Teetotal text displayer (he says smugly)
  147.  
  148.  
  149.